package com.suxin.predicate.predicate;

import java.util.function.Predicate;

/**
 * @author Tang
 * @classname PredicateFactory
 * @description [ 快速创建的工厂类 ]
 * @date 2022/11/2 10:20
 */
public class PredicateFactory {

    public static <T> DefaultPredicate<T> defaultPredicate(Predicate<T> root) {
        return new DefaultPredicate<>(root);
    }

    public static <T> DefaultPredicate<T> copyDefaultPredicate(DefaultPredicate<T> root) {
        return new DefaultPredicate<>(root);
    }

    public static <T> ConsumerPredicate<T> consumerPredicate(DefaultPredicate<T> defaultPredicate) {
        return new ConsumerPredicate<>(defaultPredicate);
    }

    public static <T,M> FunctionPredicate<T,M> functionPredicate(DefaultPredicate<T> defaultPredicate) {
        return new FunctionPredicate<>(defaultPredicate);
    }

}
